package thread_design;

/**
 * Created with IDEA
 * author:ju bai
 * Date:2021/5/25
 * Time:20:29
 * 单例模式-懒汉
 **/
public class Demo2 {
    static class Singleton {
        //1.先创建一个私有的构造函数,防止其他类直接实例化
        private Singleton(){

        }
        //2.创建私有的类对象
        private static Singleton singleton = null;

        //3.提供统一的访问方法
        public static Singleton getInstance() {
            if(singleton==null) {//第一次访问
                singleton = new Singleton();
            }
            return singleton;
        }
    }

    public static void main(String[] args) {

        Singleton s1 = Singleton.getInstance();//创建第一个对象
        Singleton s2 = Singleton.getInstance();//创建第二个对象
        System.out.println(s1==s2);//true,说明两次变量的赋值都使用的是同一个对象
    }

}
